home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Geek Gadgets 2
/
Geek_Gadgets_2_2352.bin
/
lists
/
ade-gcc.archive.9602.gz
/
ade-gcc.archive.9602
/
000090_owner-ade-gcc_Mon Feb 19 06:21:58 1996.msg
< prev
next >
Wrap
Internet Message Format
|
1996-02-28
|
3KB
Return-Path: <owner-ade-gcc>
Received: by fishpond (Smail3.1.29.1 #57)
id m0toTcc-000gXXa; Mon, 19 Feb 96 06:19 EST
Sender: owner-ade-gcc
Received: from ernie.icslab.agh.edu.pl by fishpond with smtp
(Smail3.1.29.1 #57) id m0toTcM-000gXUC; Mon, 19 Feb 96 06:18 EST
Received: (from kiskra@localhost) by ernie.icslab.agh.edu.pl (8.6.12/8.6.12) id MAA05421; Mon, 19 Feb 1996 12:16:34 +0100
Date: Mon, 19 Feb 1996 12:16:34 +0100 (MET)
From: Kamil Iskra <kiskra@ernie.icslab.agh.edu.pl>
To: Matthias Fleischer <fleischr@IZFM.Uni-Stuttgart.DE>
cc: amiga-gcc-port@nic.funet.fi, ADE GCC List <ade-gcc@ninemoons.com>
Subject: Re: Passing arguments in registers and stack checking/extension
In-Reply-To: <9602161050.AA10759@sunserv.IZFM.Uni-Stuttgart.DE>
Message-ID: <Pine.SUN.3.91.960219120359.4888B-100000@ernie>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-ade-gcc@ninemoons.com
Precedence: bulk
On Fri, 16 Feb 1996, Matthias Fleischer wrote:
> > I think the big problem is that this small functions like __link_a5_d0,
> > __sub_a7_d0 or __stkchk_d0 (or whatever they're called) expect argument in
> > d0. However, d0 is used to pass argument to user's function, so it can't
> > be used as argument for stack checking/extension functions.
> That's true. But if you use stack based arguments for the stackextend
> functions to get registerized parameters you don't win anything. You only
> move the overhead of pushing/popping registers out of the normal function
> call into the stackextend call. I guess any solution that is really fast
> will need to be very complicated, too :-(.
You are right. Actually, I'm not aware of any other solution of passing
arguments than on stack or registers (or in static storage - but this is
complete braindamage) - since none of these seems reasonable, I guess we
will have to drop support for register parameters used together with stack
checking/extension...
Or we can use worse stack checking code in such case - ie. pretend that
stack frame will only have 0 bytes - call "__link_a5_0" etc. This wouldn't
be as safe as with stackarg calls, but at least it would be possible...
The problem would exist during function prologue only - later alloca()
calls would be completely safe...
> > I think this would have to be made quite
> > quickly - before IXEmul 43.0 with stack checking/extension support is out.
> No, please. It seems to be stable as it is *now* and I don't think that
> some quick and dirty changes will do any good. A new interface should be well
> thought out ;-).
You are right. I suggested to make it quickly just to protect us against
possible future incompatibilities - but indeed it seems that support for
stack checking/extension with register parameters can be made in
compatible way...
/ Kamil Iskra - AMIGA 1200, 68030 50MHz, HDD 850 MB, 10 MB RAM \
| iskra@student.uci.agh.edu.pl kiskra@ernie.icslab.agh.edu.pl |
| http://student.uci.agh.edu.pl/~iskra |
\ PGP public key available via Finger or WWW /